package Entity;

import java.io.Serializable;
import java.util.ArrayList;
/**
 * 
 * Entity: Course.
 * contain Course Entity properties along with getters and setters to each property.
 * Also contain constructors.
 *
 */

public class Dog implements Serializable{
  

	private static final long serialVersionUID = 1L;
	public Integer ID;
	public String Gender;
	public String Name;
	public String Comments;
	public Integer birthnum;
	public String mother;
	public String father;
	public String exitunit;
	public String exitreason;
	public String recieveunit;
	public String begindate;
	public String coursetype;
	public String comments;
	public String DateOfBirth;

	public ArrayList<Dog> DogList = new ArrayList<Dog>();
	/**
	 * Dog constructor (with parameters)
	 * @param iD  dog ID
	 * @param name  Dog Name 
	 * @param gender male or female
	 * @param birthnum Birth Number
	 * @param mother Dog's mother
	 * @param father Dog's father 
	 * @param exitunit date that the dog sacked from "oketz" 
	 * @param exitreason  reason that the dog sacked from "oketz" 
	 * @param recieveunit name of unit who receive the dog after sacked
	 * @param begindate the date the dog begin the course 
	 * @param coursetype type of the course 
	 * @param comments if there some comments about the dog
	 * @param DateOfBirth dog Date of birth
	 */
	public Dog(Integer iD,String name,String gender,Integer birthnum 
			, String mother, String father, String exitunit,
			String exitreason, String recieveunit, String begindate,
			String coursetype, String comments,String DateOfBirth) {
		super();
		ID = iD;
		Gender = gender;
		Name = name;
		Comments = comments;
		this.birthnum = birthnum;
		this.mother = mother;
		this.father = father;
		this.exitunit = exitunit;
		this.exitreason = exitreason;
		this.recieveunit = recieveunit;
		this.begindate = begindate;
		this.coursetype = coursetype;
		this.comments = comments;
		this.DateOfBirth=DateOfBirth;
	}
	
	/**
	 * Dog constructor
	 * @param name - name of the dog
	 */
	public Dog(String name)
	{
		this.Name=name;
		
	}
	
	/**
	 * Dog constructor (no parameters)
	 */
	public Dog()
	{
	}

	/**
	 * 
	 * @return Dog ID
	 */
	public Integer getID() {
		return ID;
	}
	/**
	 * 
	 * @param iD Dog ID
	 */
	public void setID(Integer iD) {
		ID = iD;
	}
	/**
	 * 
	 * @return Dog gender
	 */
	public String getGender() {
		return Gender;
	}
	/**
	 * 
	 * @param gender dog gender
	 */
	public void setGender(String gender) {
		Gender = gender;
	}
	/**
	 * 
	 * @return Dog name
	 */
	public String getName() {
		return Name;
	}
	/**
	 * 
	 * @param name dog name
	 */
	public void setName(String name) {
		Name = name;
	}
	/**
	 * 
	 * @return Dog birth number
	 */
	public Integer getBirthnum() {
		return birthnum;
	}
	/**
	 * 
	 * @param birthnum dog birth number
	 */
	public void setBirthnum(Integer birthnum) {
		this.birthnum = birthnum;
	}
	/**
	 * 
	 * @return dog mother
	 */
	public String getMother() {
		return mother;
	}
	/**
	 * 
	 * @param mother dog mother
	 */
	public void setMother(String mother) {
		this.mother = mother;
	}
	/**
	 * 
	 * @return dog father
	 */
	public String getFather() {
		return father;
	}
	/**
	 * 
	 * @param father dog father
	 */
	public void setFather(String father) {
		this.father = father;
	}
	/**
	 * 
	 * @return Date the dog sacked from "Oketz"
	 */
	public String getExitunit() {
		return exitunit;
	}
	/**
	 * 
	 * @param exitunit Date the dog sacked from "Oketz"
	 */
	public void setExitunit(String exitunit) {
		this.exitunit = exitunit;
	}
	/**
	 * 
	 * @return reason the dog sacked from "Oketz"
	 */
	public String getExitreason() {
		return exitreason;
	}
	/**
	 * 
	 * @param exitreason reason the dog sacked from "Oketz"
	 */
	public void setExitreason(String exitreason) {
		this.exitreason = exitreason;
	}
	/**
	 * 
	 * @return name of the unit receiving the dog after sacked
	 */
	public String getRecieveunit() {
		return recieveunit;
	}
	/**
	 * 
	 * @param recieveunit name of the unit receiving the dog after sacked
	 */
	public void setRecieveunit(String recieveunit) {
		this.recieveunit = recieveunit;
	}
	/**
	 * 
	 * @return Date the dog begin course
	 */
	public String getBegindate() {
		return begindate;
	}
	/**
	 * 
	 * @param begindate Date the dog begin course
	 */
	public void setBegindate(String begindate) {
		this.begindate = begindate;
	}
	/**
	 * 
	 * @return  Name of the course that dog enrolled to
	 */
	public String getCoursetype() {
		return coursetype;
	}
	/**
	 * 
	 * @param coursetype Name of the course that dog enrolled to
	 */
	public void setCoursetype(String coursetype) {
		this.coursetype = coursetype;
	}
	/**
	 * 
	 * @return comments about the dog
	 */
	public String getComments() {
		return comments;
	}
	/**
	 * 
	 * @param comments comments about the dog
	 */
	public void setComments(String comments) {
		this.comments = comments;
	}
	/**
	 * 
	 * @return dog's Date of birth
	 */
	public String getDateOfBirth() {
		return DateOfBirth;
	}
	/**
	 * 
	 * @param DateOfBirth  dog's Date of birth
	 */
	public void setDateOfBirth(String DateOfBirth) {
		this.DateOfBirth = DateOfBirth;
	}

	public static void add(Dog dog1) {
		
	}
	
	public ArrayList<Dog> getDogList() {
		return DogList;
	}


	public void setDogList(ArrayList<Dog> DogList) {
		this.DogList = DogList;
	}
	
	
	
}
